Soru & Cevap

Mysql'den Anlık Veri Çekme Problemi

07.06.2016 - 11:56

Merhabalar ,

Benim sorunum mysql'deki bir veriyi butonla çekebiliyorum fakat benim istediğim bunu butonsuz anlık olarak ortalama 10 saniyede bir çekmesi lazım.Aşağıdaki kodta bir hata almıyorum. Fakat bu seferde veri gelmiyor. Nedeni ne olabilir ?

Kod:


btn.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

new CountDownTimer(10000,100){

public void onTick(long millisUntilFinished){

System.out.println("ww");

JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, goster, new Response.Listener<JSONObject>() {

@Override

public void onResponse(JSONObject response) {

System.out.println(response.toString());

try {

JSONArray sira2 = response.getJSONArray("sira"); for (int i = 0; i < sira2.length(); i++) {

JSONObject student = sira2.getJSONObject(i);

String sira1 = student.getString("sira"); sira.append(sira1);

} }

catch (JSONException e) {

e.printStackTrace();

} } },

new Response.ErrorListener() {

@Override

public void onErrorResponse(VolleyError error) {

System.out.append(error.getMessage()); } });

requestQueue.add(jsonObjectRequest); }

public void onFinish(){ } }.start();
 

41 Görüntülenme

1 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

picture-57989-1451678910.jpg
serdarşen
07.06.2016 - 02:42

Merhaba Abdulaziz, benim anladığım kadarıyla CountDownTimer'i yalnız bir defa çalıştırdığından ilk veriden sonra veri gelmiyor. Onun yerine bir countDownTimer nesnesi üretip hem onCreate içinde hem de onResponse içinde çağırmayı deneyebilirsin. request üreten metodunu da CountDownTimer'in onFinish metodunda çağırırsın. Aşağıda geleceğı yazanlar bloğu için olan örneği inceleyebilirsin. Kolay gelsin.

import android.os.CountDownTimer;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;

import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonArrayRequest;
import com.android.volley.toolbox.Volley;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

public class MainActivity extends AppCompatActivity {

    private String TAG = "MainActivity";
    String loginURL = "https://gelecegiyazanlar.turkcell.com.tr/gypservis/article/retrieve?nitems=10&index=0&kategoriID=718";
    String data = "";

    RequestQueue requestQueue;
    CountDownTimer countDownTimer;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        requestQueue = Volley.newRequestQueue(this);

        requestGonder();
        countDownTimer = new CountDownTimer(10000, 1000) {

            public void onTick(long millisUntilFinished) {

                Log.i(TAG, "kalan süre...: " + millisUntilFinished / 1000);

            }

            public void onFinish() {
                Log.i(TAG, "süre tamamlandı!");
                requestGonder();
            }
        };
        countDownTimer.start();

    }

    private void requestGonder() {

        Log.i(TAG, "requestGonderiliyor........");

        JsonArrayRequest jor = new JsonArrayRequest(Request.Method.GET, loginURL, null,
                new Response.Listener<JSONArray>() {
                    @Override
                    public void onResponse(JSONArray response) {

                        Log.i(TAG, "onResponse");

                        jsonuParseEt(response);
                        countDownTimer.cancel();
                        countDownTimer.start();

                    }
                },
                new Response.ErrorListener() {

                    @Override
                    public void onErrorResponse(VolleyError error) {
                        Log.e("Volley","Error");

                    }

                }
        );
        requestQueue.add(jor);
    }

    private void jsonuParseEt(JSONArray response) {

        try{

            JSONArray ja = response;

            for(int i=0; i < ja.length(); i++){

                JSONObject jsonObject = ja.getJSONObject(i);

                String title = jsonObject.getString("title");

                data += title + "\n\n";
                Log.i(TAG, "data: " + data);

            }

        }catch(JSONException e){e.printStackTrace();}
    }
}